package com.example.administrator.activity.test.music;

import android.content.Intent;
import android.os.Environment;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

import com.example.administrator.activity.R;
import com.example.administrator.activity.music.Music;

import java.io.File;
import java.util.ArrayList;

public class Music2Activity extends AppCompatActivity  implements AdapterView.OnItemClickListener {
    String sdPath;
//    定义一个集合，保存mp3文件名
    ArrayList<Music2> arrayList=new ArrayList<Music2>();
    ListView listView;
    private Intent intent;
    String Mp3Name;

    /**
     * 首页 音乐文件的展示
     * 1.找到sd路径
     * 2.把所有mp3.Irc文件上传达sd路径
     * 3.读取SD路径下所有mp3结尾的文件名
     * 4.把mp3文件名，展示在ListView
     * @param savedInstanceState
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_music2);

        listView=findViewById(R.id.music2_listView_mp3list);
        listView.setOnItemClickListener(this);
        String[] p={"android.permission.WRITE_EXTERNAL_STORAGE"};
        ActivityCompat.requestPermissions(Music2Activity.this,p,1);
        sdPath=Environment.getExternalStorageDirectory().getPath();
        Log.v("music",sdPath);
        /**
         * 读取SD路径下所有文件，过滤出所有以.mp3结尾的文件，加到集合中
         * 1.以sd路径为参数，构造出File对象
         * 2.列出该File对象的所有文件和文件名
         * 3.过滤以.mp3结尾的文件
         * 4.把.mp3文件加到集合
         */
        File file=new File(sdPath);
//      列出文件夹下的所有文件和文件夹名
        File[] files=file.listFiles();
        for (int i = 0; i <files.length ; i++) {
//            获得文件名，判断是否以.mp3结尾
            if (files[i].getName().endsWith(".mp3")) {
                Music2 music2 = new Music2();
                Mp3Name = files[i].getName();
                music2.setMp3Name(Mp3Name);
                arrayList.add(music2);
            }
        }
        /**
         * 1.把集合展示在ListView；需要适配器Adapter
         * 列表项中若只有一个TextView，可以使用ArrayAdapter
         * 若列表项比较复杂，还有按钮之类的，就要使用Base Adapter（重新四个方法）
         * 参数1：上下文章；
         * 参数二：列表项中的布局文件id
         * 参数3：布局文件内的TextVIew的id
         * 参数4:TextView要展示的内容数据List
         */
        ArrayAdapter arrayAdapter=new ArrayAdapter(this,R.layout.activity_music_item,R.id.music_item_tv,arrayList);
        listView.setAdapter(arrayAdapter);
    }



    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    }
}
